/**
 * Arduino两轮小车
 * 
 * 本程序可不受限制的用于学习和教学，商业用途请联系作者。
 * 本程序不对用户因使用程序而造成任何形式的损失负责。
 * 
 * site: http://www.xpstem.com/maker/arduino-vehicle
 * author: billy zhang
 */
 
#ifndef ARDUINO_TWOWHEEL_DRIVEN_H_
#define ARDUINO_TWOWHEEL_DRIVEN_H_

#include <Arduino.h>

class TwoWheelDriven
{
   public:
     TwoWheelDriven(uint8_t leftMotorDir, uint8_t leftMotorEn, uint8_t rightMotorDir, uint8_t rightMotorEn);
     ~TwoWheelDriven();

     void forward(uint8_t power);
     void backward(uint8_t power);
     void turnLeft(uint8_t power);
     void turnRight(uint8_t power);
     void stop();

  private:
    void drive(bool leftDir, uint8_t leftPower, bool rightDir, uint8_t rightPower);
    uint8_t leftMotorDir_;
    uint8_t leftMotorEn_;
    uint8_t rightMotorDir_;
    uint8_t rightMotorEn_;
    
};

#endif
